/*
 * 描述： <描述>
 * 修改人： rain
 * 修改时间： 2016年9月13日
 * 项目： yaxinp2p
 */
package com.rainhy.webcore.token.context;

import org.springframework.beans.factory.InitializingBean;
import org.springframework.util.Assert;

/**
 * AccessToken 配置器
 * 
 * @author rain
 * @version [版本号, 2016年9月13日]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public class AccessTokenContextConfigurator implements InitializingBean {
    
    /** Token 管理者 */
    protected TokenManager tokenManager;
    
    /** 超时时间,默认30分钟 */
    protected long maxInactiveInterval = 30 * 60 * 1000L;
    
    /** 启用 cookie 保存 tokenid */
    protected boolean validateCookie = false;
    
    /** 启用 header 保存 tokenid */
    protected boolean validateHeader = true;
    
    @Override
    public void afterPropertiesSet() throws Exception {
        Assert.notNull(this.tokenManager, "Token 管理者不能为 null!");
    }
    
    /** 超时时间 */
    public long getMaxInactiveInterval() {
        return maxInactiveInterval;
    }
    
    /** Token 管理者 */
    public TokenManager getTokenManager() {
        return tokenManager;
    }
    
    /** 启用 cookie 保存 tokenid */
    public boolean isValidateCookie() {
        return validateCookie;
    }
    
    /** 启用 header 保存 tokenid */
    public boolean isValidateHeader() {
        return validateHeader;
    }
    
    /** 超时时间 */
    public void setMaxInactiveInterval(long maxInactiveInterval) {
        this.maxInactiveInterval = maxInactiveInterval;
    }
    
    /** Token 管理者 */
    public void setTokenManager(TokenManager tokenManager) {
        this.tokenManager = tokenManager;
    }
    
    /** 启用 cookie 保存 tokenid */
    public void setValidateCookie(boolean validateCookie) {
        this.validateCookie = validateCookie;
    }
    
    /** 启用 header 保存 tokenid */
    public void setValidateHeader(boolean validateHeader) {
        this.validateHeader = validateHeader;
    }
    
}
